﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _090.读取文件夹
{
	internal class FIlesUtils
	{
		static void FIles()
		{
			string folderPath = @"D:\test";
			Dictionary<string, string> fileContents = GetFilesContent(folderPath);
			if (fileContents == null)
			{
				Console.WriteLine("没有文件");
				return;
			}

			// todo  处理一下文件名 得到test时间然后  循环调用 写入数据库  


			// 打印哈希表中的文件名和内容
			Console.WriteLine("文件内容：");
			foreach (KeyValuePair<string, string> kvp in fileContents)
			{
				Console.WriteLine($"文件名：\n{kvp.Key}");
				Console.WriteLine($"内容：\n{kvp.Value}");
			}
		}
		static Dictionary<string, string> GetFilesContent(string folderPath)
		{
			// 获取文件夹中的第一层文件
			string[] files = Directory.GetFiles(folderPath, "*", SearchOption.TopDirectoryOnly);
			if (files.Length == 0)
			{
				// 没有文件
				return null;
			}
			string targetFolderPath = Path.Combine(folderPath, "target");
			// 创建目标文件夹
			Directory.CreateDirectory(targetFolderPath);
			// 创建哈希表
			Dictionary<string, string> fileContents = new Dictionary<string, string>();
			foreach (string file in files)
			{
				// 读取文件内容
				string content = File.ReadAllText(file);
				if (string.IsNullOrEmpty(content))
				{
					break;
				}
				// 去掉后缀的文件名
				string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(file);
				// 将文件内容存储到哈希表中
				fileContents[fileNameWithoutExtension] = content;
				// 获取文件名
				string fileName = Path.GetFileName(file);
				// 移动文件到目标文件夹
				string targetFilePath = Path.Combine(targetFolderPath, fileName);
				File.Move(file, targetFilePath);
				Console.WriteLine($"已读取文件 {file} 的内容，并将其移动到 {targetFilePath}。");
			}
			Console.WriteLine("所有文件已读取并移动到目标文件夹。");

			return fileContents;
		}
	}
}
